package com.quickcancellation.crm.service;

import com.github.yulichang.base.service.MPJJoinService;
import com.quickcancellation.crm.pojo.entity.Role;
import com.quickcancellation.crm.pojo.vo.LeftMenuVo;
import com.quickcancellation.crm.pojo.vo.MenuVo;
import com.quickcancellation.crm.pojo.vo.RoleVo;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author baomidou
 * @since 2023-02-25
 */
public interface IRoleService extends MPJJoinService<Role> {

    public List<String> getRoleListByUsernumber(String usernumber);

    /**
     * 获取返回给前端的用户权限列表
     * @param usernumber usernumber
     * @return 用户权限列表
     */
    public List<RoleVo> getRoleVoByUsernumber(String usernumber);

    /**
     * 添加或删除用户权限
     * @param roleList
     * @return
     */
    boolean addOrDelUserRole(String usernumber, List roleList, String currentUserNumber);

    /**
     * 查询角色权限数据
     * @param roleId 用户id
     * @return
     */
    List<MenuVo> getMenuByRoleId(String roleId);

    /**
     * 保存用户全西安
     * @param id
     * @param menuVoList
     * @return
     */
    boolean saveOrDelRoleMenu(Long id, List<MenuVo> menuVoList);

    /**
     * 判断是否存在该角色
     * @param roleName
     * @param roleType
     * @return
     */
    boolean existRoleByRoleNameOrRoleType(String roleName,String roleType);

    /**
     * 获取所有左边的数据结构
     * @param userumber 用户号
     * @return 左边菜单栏的数据结构
     */
    List<LeftMenuVo> getMenuListByUsernumber(String userumber);


    String getDefaultMenu(String usernumber);
}
